Skip to content

[3.0] Refactor extensions#1038

Draft
crazywhalecc wants to merge 40 commits intov3-devfrom
v3-refactor/extensions
Draft

[3.0] Refactor extensions#1038
crazywhalecc wants to merge 40 commits intov3-devfrom
v3-refactor/extensions

Conversation

@crazywhalecc
Copy link
Owner

@crazywhalecc crazywhalecc commented Feb 19, 2026

What does this PR do?

Refactor extensions from v2.

Other tasks

Extensions

  • amqp
  • apcu
  • ast
  • bcmath
  • brotli
  • bz2
  • calendar
  • com_dotnet
  • ctype
  • curl
  • dba
  • dio
  • dom
  • ds
  • enchant
  • ev
  • event
  • excimer
  • exif
  • ffi
  • fileinfo
  • filter
  • ftp
  • gd
  • gettext
  • glfw
  • gmp
  • gmssl
  • grpc
  • iconv
  • igbinary
  • imagick
  • imap
  • inotify
  • intl
  • ldap
  • libxml
  • lz4
  • maxminddb
  • mbregex
  • mbstring
  • mcrypt
  • memcache
  • memcached
  • mongodb
  • msgpack
  • mysqli
  • mysqlnd
  • mysqlnd_ed25519
  • mysqlnd_parsec
  • oci8
  • odbc
  • opcache
  • openssl
  • opentelemetry
  • parallel
  • password-argon2
  • pcntl
  • pcov
  • pdo
  • pdo_mysql
  • pdo_odbc
  • pdo_pgsql
  • pdo_sqlite
  • pdo_sqlsrv
  • pgsql
  • phar
  • posix
  • protobuf
  • rar
  • rdkafka
  • readline
  • redis
  • session
  • shmop
  • simdjson
  • simplexml
  • snappy
  • snmp
  • soap
  • sockets
  • sodium
  • spx
  • sqlite3
  • sqlsrv
  • ssh2
  • swoole
  • swoole-hook-mysql
  • swoole-hook-odbc
  • swoole-hook-pgsql
  • swoole-hook-sqlite
  • swow
  • sysvmsg
  • sysvsem
  • sysvshm
  • tidy
  • tokenizer
  • trader
  • uuid
  • uv
  • xdebug
  • xhprof
  • xlswriter
  • xml
  • xmlreader
  • xmlwriter
  • xsl
  • xz
  • yac
  • yaml
  • zip
  • zlib
  • zstd

@crazywhalecc crazywhalecc changed the base branch from main to v3-dev February 19, 2026 15:08
@crazywhalecc crazywhalecc requested a review from Copilot February 26, 2026 08:18
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request represents a significant refactoring effort to modernize the extension handling system from v2 to v3.0. The PR introduces a comprehensive smoke testing framework, refactors FrankenPHP build logic, updates branding from "static-php-cli" to "StaticPHP", and makes numerous improvements to the build system architecture. Key changes include moving from a monolithic builder approach to a more modular package-based architecture with proper dependency handling and validation.

Changes:

  • Added comprehensive smoke test framework for CLI, CGI, micro, embed, and FrankenPHP SAPIs with configurable test skipping via --no-smoke-test option
  • Refactored FrankenPHP build process with new smoke tests and improved handling of the --with-frankenphp-app option
  • Rebranded product from "static-php-cli" to "StaticPHP" across documentation and code
  • Added new extension support (apcu) and improved libavif build configuration with optional dependencies
  • Enhanced build system with better error handling, build tracking file rename, and improved Makefile path handling

Reviewed changes

Copilot reviewed 24 out of 24 changed files in this pull request and generated 11 comments.

Show a summary per file
File Description
src/globals/test-extensions.php Modified test configuration to focus on pgsql extension testing (significantly reduced coverage)
src/StaticPHP/Util/BuildRootTracker.php Renamed tracker file from .spc-tracker.json to .build.json
src/StaticPHP/Package/PhpExtensionPackage.php Added comprehensive smoke test methods and improved extension name handling
src/StaticPHP/Command/Dev/LintConfigCommand.php Added MOTD suppression and "No changes" output message
src/SPC/store/pkg/GoXcaddy.php Fixed path handling to use hardcoded 'go-xcaddy' directory
src/SPC/builder/unix/library/postgresql.php Removed aarch64 glibc 2.17 patches (moved to new architecture)
src/SPC/builder/unix/library/libavif.php Added optional library dependencies for improved build flexibility
src/SPC/builder/unix/UnixBuilderBase.php Added quote trimming for FrankenPHP app path and ServerHeader build flag
src/SPC/ConsoleApplication.php Version bump to 2.8.3
src/Package/Target/php/unix.php Major refactoring with new smoke test framework, removed old patches, added sed fix for Makefile paths
src/Package/Target/php/frankenphp.php Renamed methods, added smoke tests, refactored app processing
src/Package/Target/php.php Added frankenphp trait usage and --no-smoke-test option
src/Package/Library/postgresql.php Made explicit_bzero patch macOS-specific
src/Package/Library/libacl.php Added patch description annotation
config/source.json Disabled pre-built flag for libavif
config/lib.json Added libavif dependencies and suggestions
config/pkg/ext/ext-apcu.yml New extension configuration file
README.md Updated branding to StaticPHP
README-zh.md Updated branding to StaticPHP (Chinese)
.github/workflows/build-unix.yml Added with-suggested-libs option and debug log upload

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants